package timing.ukulele.portal.convertor;

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import timing.ukulele.common.data.BaseDataConverter;
import timing.ukulele.data.portal.view.RoleVO;
import timing.ukulele.portal.persistent.SysRole;

@Mapper
public interface RoleConvertor extends BaseDataConverter<SysRole, RoleVO> {
    RoleConvertor INSTANCE = Mappers.getMapper(RoleConvertor.class);

    @Override
    @Mappings({
            @Mapping(target = "createBy", ignore = true),
            @Mapping(target = "createTime", ignore = true),
            @Mapping(target = "updateBy", ignore = true),
            @Mapping(target = "updateTime", ignore = true),
    })
    SysRole v2p(RoleVO roleVO);

    @Override
    @Mappings({
            @Mapping(target = "typeDescription", ignore = true),
            @Mapping(target = "tenantName", ignore = true)
    })
    RoleVO p2v(SysRole sysRole);
}
